#encoding:utf-8
'''
这个文件是第三题：使用python实现老式的银行管理系统
在该系统中将会有如下功能：
登录功能
在登录完成后会出现提示界面，包括查看个人信息（查看余额度），存钱，取钱，退出等等操作
'''

#定义一个账户信息列表
IDcardList = [
{'card_num':'6217000010031373832','pass':'123456','balance':1000},
{'card_num':'6217000013762237838','pass':'234567','balance':1000},
{'card_num':'6217000022353233333','pass':'901901','balance':1000},
]

#定义一个函数，该函数用来实现增加减少金额的操作
def modi_amount(IDCard,balance,amount,action):
	'''
	函数说明文档
	函数名称：实现金额上下浮动变化
	参数：
	IDcard卡号  类型 字符串
	balance当前余额 类型 整形
	amount变化金额 类型 整形
	action操作方式 类型 字符串
	原理：
	首先通过判断前三个参数是否为空，如果前三个参数中有任何一个为空返回错误信息
	如果不为空则需要借助第四个参数来进行多项分支来判断
	如果操作方式为sum，则表示求和
	如果操作方式为diff，则表示求差
	否则在当前余额的基础上+0即可，表示任然是当前余额
	'''
	
	print("卡号：",IDcard)
	if IDcard == '' or balance == '' or amount == '':
		print("参数不能为空")
	else:
		if action == 'sum':
			balance+=amount
			print("账户余额：",balance)
		elif action == 'diff':
			balance-=amount
			print("账户余额：",balance)
		else:
			balance+=0
			print("账户余额：",balance)
		#print("账户余额：",balance)

# 首先实现登录操作
IDcard = input("请输入卡号：")
passwd = input("请输入密码：")

#循环账户信息列表
for i in range(len(IDcardList)):
	#print(type(IDcardList[i]['balance']))
	#IDcardList[i]['balance']=IDcardList[i]['balance']+10
	#print(IDcardList[i]['balance'])
	'''
	对输入的账户名称与密码进行判断，此处使用巢状分支判断
	第一层判断判断是否已经输入用户名和密码，如果有一项未输入则提示错误然后退出
	如果进入if区间则开始第二层判断，判断用户名和密码是否正确，正确则输出界面 不正确提示错误然后退出

	由于在while循环中当变量key的值为2和3的时候需要输出相同的代码
	所以将此处代码提出一个公共的函数然后进行调用，然后将while中的代码注释
	'''
	if IDcard != '' and  passwd != '':
		if IDcard == IDcardList[i]['card_num'] and passwd == IDcardList[i]['pass']:
			while True:
				# 初始化界面信息
				print("="*18,"银行管理系统","="*18)
				print("{0:1} {1:13} {2:15}".format(" ","1：查看余额","2：存    款"))
				print("{0:1} {1:13} {2:15}".format(" ","3：取    款","  4：退    出"))
				print("="*50)
				key = input("请输入对应的选项：")
				if key == '1':
					#print("卡号：",IDcardList[i]['card_num'])
					#print("账户余额：",IDcardList[i]['balance'])
					modi_amount(IDcardList[i]['card_num'],IDcardList[i]['balance'],0,'')
					input("请按回车键继续")
				if key == '2':
					a=input("请输入存款金额：")
					print("卡号：",IDcardList[i]['card_num'])
					IDcardList[i]['balance']+=int(a)
					print("账户余额：",IDcardList[i]['balance'])
					#modi_amount(IDcardList[i]['card_num'],IDcardList[i]['balance'],int(a),'sum')
					input("请按回车键继续")
				if key == '3':
					a=input("请输入取款金额：")
					print("卡号：",IDcardList[i]['card_num'])
					IDcardList[i]['balance']-=int(a)
					print("账户余额：",IDcardList[i]['balance'])
					#modi_amount(IDcardList[i]['card_num'],IDcardList[i]['balance'],int(a),'diff')
					input("请按回车键继续")
				if key == '4':
					print("========== 再见 ==========")
					break
			break
		else:
			print("用户名或密码错误")
			break
	else:
		print("用户名密码不能为空")
		break
	
